#练习完整性功能长时
# 学生成绩管理系统
print("欢迎查询忘忧泉学生系统！~")
students = {}  # 用字典存储学生信息：学号: {"姓名": 姓名, "成绩": 成绩}
def print_menu():

    print("\n===== 学生成绩管理系统 =====")
    print("1. 录入学生成绩")
    print("2. 查询学生成绩")
    print("3. 统计班级平均分")
    print("4. 显示所有学生成绩")
    print("5. 退出系统")
    print("============================")
def input_student():
    """获取学生信息"""
    while True:
        sid = input("请输入学号（数字）：")
        if sid.isdigit():  # 验证学号为数字
            sid = int(sid)
            break
        else:
            print("学号需为数字，请重新输入！")
    name = input("请输入姓名：")
    while True:
        score = input("请输入成绩（0-100）：")
        if score.isdigit():
            score = int(score)
            if 0 <= score <= 100:
                break
            else:
                print("成绩需在0-100之间，你输入的数不对劲。请重新输入！")
        else:
            print("成绩需为数字，请重新输入！")
    return sid, name, score
def add_student():
    sid, name, score = input_student()
    if sid in students:
        print(f"警告：学号{sid}已存在，将更新成绩！")
    students[sid] = {"姓名": name, "成绩": score}
    print(f"成功录入/更新学生：{name}（学号{sid}，成绩{score}）")
def query_student():
    """查询学生成绩"""
    sid = int(input("请输入要查询的学号："))
    if sid in students:
        info = students[sid]
        print(f"学号{sid}：{info['姓名']}，成绩{info['成绩']}")
    else:
        print(f"未找到学号{sid}的学生信息，忘忧泉在努力了你再确认一下学号是否准确吧！")

def calculate_average():
    """计算平均分"""
    if not students:
        print("当前无学生数据，先把学生信息录入给忘忧泉吧！")
        return
    total = sum(score["成绩"] for score in students.values())
    average = total / len(students)
    print(f"咱们班级的平均分是：{average:.2f}分")

def show_all_students():
    """显示所有学生成绩"""
    if not students:
        print("当前无学生数据！")
        return
    print("\n所有学生成绩列表为：")
    print("学号\t姓名\t成绩")
    for sid, info in students.items():
        print(f"{sid}\t{info['姓名']}\t{info['成绩']}")
# 主程序循环
while True:
    print_menu()
    choice = input("请选择功能（1-5）：")
    if choice == '1':
        add_student()
    elif choice == '2':
        query_student()
    elif choice == '3':
        calculate_average()
    elif choice == '4':
        show_all_students()
    elif choice == '5':
        print("要退出系统了吗，再见~欢迎下次再来使用哦，我会想你的！")
        break
    else:
        print("输入有误是1到5这五位数字中的一位进行选择，请重新选择！")
